import 'package:flutter/foundation.dart';

class Log {
  static const int _maxLen = 1000;

  static void d(dynamic msg) => _print('[D]🐛', msg);

  static void i(dynamic msg) => _print('[I]💡', msg);

  static void w(dynamic msg) => _print('[W]⚠️', msg);

  static void e(dynamic msg) => _print('[E]⛔', msg);

  static void _print(String tag, dynamic msg) {
    if (!kDebugMode) return;

    final text = msg?.toString() ?? 'null';
    if (text.length <= _maxLen) {
      debugPrint('$tag $text');
      return;
    }

    debugPrint('$tag ──Start──');
    for (var i = 0; i < text.length; i += _maxLen) {
      debugPrint(text.substring(
          i, i + _maxLen > text.length ? text.length : i + _maxLen));
    }
    debugPrint('$tag ──End──');
  }
}
